From: Matthew Leeds Date: Fri, 24 Apr 2020 00:42:16 +0000 (-0700) Subject: screenShield: Fix use of null this._dialog X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~684^2^2~472 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=527ce66cd452aa64a0e64e5fc368698d64116192;p=gnome-shell.git screenShield: Fix use of null this._dialog On Fedora 32 if you close the laptop lid during gnome-initial-setup, gnome-shell hits this error: JS ERROR: Exception in callback for signal: prepare-for-sleep: TypeError: this._dialog is undefined _resetLockScreen@resource:///org/gnome/shell/ui/screenShield.js:434:9 activate@resource:///org/gnome/shell/ui/screenShield.js:571:14 lock@resource:///org/gnome/shell/ui/screenShield.js:617:14 _prepareForSleep@resource:///org/gnome/shell/ui/screenShield.js:219:22 _emit@resource:///org/gnome/gjs/modules/core/_signals.js:133:47 _prepareForSleep@resource:///org/gnome/shell/misc/loginManager.js:198:14 _emit@resource:///org/gnome/gjs/modules/core/_signals.js:133:47 _convertToNativeSignal@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:169:19 This is because _ensureUnlockDialog() hit its first early return. So return early from activate() in that case, so this._dialog doesn't get used while it's null. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1213 --- diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 98279e070..ab75577fa 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -561,7 +561,8 @@ var ScreenShield = class { if (this._activationTime == 0) this._activationTime = GLib.get_monotonic_time(); - this._ensureUnlockDialog(true); + if (!this._ensureUnlockDialog(true)) + return; this.actor.show();